package beans;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 单个bean的注入
 * @author Early
 *
 */
public class main {
	public static void main(String[] args){
//		//原有的方式
//		HelloWorld helloWorld=new HelloWorld();
//		helloWorld.setName("Spring");
//		helloWorld.hello();
		
		//1.创建Spring的IOC容器对象
		//ApplicationContext代表IOC容器
		ApplicationContext ctx=new ClassPathXmlApplicationContext("ApplicationContext.xml");
		//2.从IOC容器中获取Beans实例
		
		//2.1:利用ID定位到IOC容器中的bean
//		HelloWorld helloworld = (HelloWorld)ctx.getBean("helloworld");
		
		//2.2:利用类型返回IOC容器中的Bean,但要求IOC容器中必须只能有一个该类型的Bean
		HelloWorld helloworld = ctx.getBean(HelloWorld.class);
		//3.调用hello方法
		helloworld.hello();
		
		
		Car car=(Car)ctx.getBean("car");
		System.out.println(car);
		
		car=(Car) ctx.getBean("car1");
		System.out.println(car);
		
		//setter方法输入
		Person person=(Person) ctx.getBean("person");
		System.out.println(person);
		
		//构造器注入
		person=(Person) ctx.getBean("person2");
		System.out.println(person);
		
		
	}
}
